home *** CD-ROM | disk | FTP | other *** search
/ PC Kids 1996 January / PC Kids - January 1996.iso / dksetup / dkgen.inc < prev    next >
Encoding:
Text File  |  1995-11-08  |  26.6 KB  |  745 lines

  1. '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  2. '
  3. '   DKGEN.INC
  4. '
  5. '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  6. '08/08/95 test for Norton Anti Virus
  7. '03/08/95 const for uninstall and min register added
  8. '07/07/95 Correct so unregisters use of ctl3d
  9. '01/06/95 No choice about adding icons to progman
  10. '?/05/95  If bundle with sampler need to test for cirrus driver - put into mst file
  11. '12/03/95 Alternative function added, readme icon has shortened name
  12.  
  13. '$INCLUDE 'setupapi.inc'
  14. '$INCLUDE 'msdetect.inc'
  15. '$INCLUDE 'dklang.inc'
  16.  
  17. CONST SOURCE_BINARIES_SUBDIR = "DKCODE"
  18. CONST SOURCE_SETUP_SUBDIR = "DKSETUP"
  19. CONST SETUP_INF_FILENAME = "SETUP.INF"
  20. CONST CUIDLL_FILENAME = "mscuistf.dll"
  21. CONST SETUP_INI_BINARIES_SECTION_NAME = "BIN"
  22. CONST SETUP_INI_SH_BINARIES_SECTION_NAME = "BIN Shared"
  23. CONST SETUP_INI_WING_BINARIES_NAME = "WinG Runtime"
  24. CONST SETUP_INI_WING32_BINARIES_NAME = "WinG32"
  25. CONST SETUP_INI_ACM_SECTION_NAME = "ACM Drivers"
  26. CONST SETUP_INI_FONTS_SECTION_NAME = "Fonts"
  27.  
  28. 'unin, min register
  29. CONST UNINSTALL_EXE_FILE = "UNINSTAL.exe"
  30. CONST DKREG_INI_DIR = "\MMAPP"
  31. CONST DKREG_INI_PATH = "\MMAPP\MMAPP.ini"
  32. CONST WIN_INI_ENTRY = "path"
  33.  
  34. CONST PRODUCT_INI_DIR_SECTION_NAME = "Directory"
  35. CONST PRODUCT_INI_DIR_ENTRY_NAME = "Data"
  36.  
  37. CONST MINIMUM_DISK_SPACE = 2048 ' For Minimum install
  38.  
  39. ' Procs
  40. CONST PROC_HELP = "FHelpDlgProc"
  41.  
  42. DECLARE FUNCTION ExitWindowsExec LIB "USER.EXE" (szEXE$, szParams$) AS INTEGER
  43.  
  44. DECLARE FUNCTION Ctl3dRegister LIB "CTL3D.DLL" (hInst%) AS INTEGER
  45. DECLARE FUNCTION Ctl3dUnregister LIB "CTL3D.DLL" (hInst%) AS INTEGER
  46. DECLARE FUNCTION Ctl3dAutoSubClass LIB "CTL3D.DLL" (hInst%) AS INTEGER
  47.  
  48. DECLARE FUNCTION OnWin3x LIB "setuphlp.DLL" AS INTEGER
  49. DECLARE FUNCTION VflatdPresent LIB "setuphlp.DLL" AS INTEGER
  50. DECLARE FUNCTION GetRealSystemDir LIB "setuphlp.DLL" (szDir$,cbBuf%) AS INTEGER
  51. DECLARE FUNCTION RestartWindows LIB "setuphlp.DLL" AS INTEGER
  52. DECLARE FUNCTION IsWin32FileNewer LIB "setuphlp.DLL" (szOrig$,szNew$) AS INTEGER
  53. DECLARE SUB RenameFilePlease LIB "setuphlp.DLL" (szOrig$,szNew$)
  54.  
  55. DECLARE FUNCTION FIsVGA LIB "mscuistf.dll" AS INTEGER
  56. DECLARE FUNCTION FIs256Colour LIB "mscuistf.dll" AS INTEGER
  57. DECLARE FUNCTION Welcome() AS INTEGER
  58. DECLARE FUNCTION TestSystem() AS INTEGER
  59. DECLARE FUNCTION GetDiskSpaceNeeded(drive%) AS LONG
  60. DECLARE SUB Initialise(prodName$, defInstallPath$, msgCaption$)
  61. DECLARE SUB DeInitialise()
  62. DECLARE SUB AskQuit()
  63. DECLARE SUB BadPath()
  64. DECLARE SUB NetworkDrive()
  65. DECLARE SUB UpdateIndeoAVIDrivers()
  66. DECLARE SUB UpdateWinGDrivers()
  67. DECLARE SUB UpdateADPCMDrivers()
  68. 'DECLARE SUB UpdateProgramManager(prodName$, appExeFile$, appPengeFile$, readmeFile$, readmeStr$, onCDROM%)
  69. 'DECLARE SUB UpdateProgramManagerAlt(prodName$, readmeName$, appExeFile$, appPengeFile$, readmeFile$, readmeStr$, onCDROM%)
  70. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  71. DECLARE FUNCTION GetRealWindowsSysDir AS STRING
  72. DECLARE SUB UpdateWinG32 (szOrig$)
  73. DECLARE SUB HandleRestart()
  74. DECLARE SUB InitCommonInstall()
  75. DECLARE SUB EndCommonInstall(appReadmeFile$, inRoot%, szEditorExe$)
  76. DECLARE FUNCTION LicenseAgreement() AS INTEGER
  77. DECLARE FUNCTION Win32sRequiredDLG() AS INTEGER
  78.  
  79. ' Error messages
  80. CONST ERR_OK = 100
  81. CONST ERR_EXITFAIL = 101
  82. CONST ERR_WINVERFAIL = 102
  83. CONST ERR_NODISKSPACE = 103
  84.  
  85. ' Navigation messages
  86. CONST NAV_FORWARD = 0
  87. CONST NAV_BACK = 1
  88. CONST NAV_EXIT = 2
  89. CONST NAV_RUN = 3
  90.  
  91.  
  92. ' Bitmap ID
  93. CONST LOGO = 1
  94.  
  95. 'QUIT ASKQUIT
  96. 'ABORT EXITFAILURE
  97. 'BADEXIT EXITQUIT
  98. 'SUCCES EXITSUCCESS
  99. 'WELHELP APPHELP
  100. 'DONEVIDEO DONENEWSYSSOFT
  101. 'DONENOVIDEO DONENOSYSSOFT
  102. 'ADDSYSTEMSOFTWARE NEWSYSTEMSOFTWARE
  103. 'WRONGADPCM NEWADPCM
  104. 'NOSYSSOFTWARE WARNNOSYSSOFT
  105.  
  106. ' Dialog ID's
  107. CONST IDD_WELCOME       = 100
  108. CONST IDD_CUSTOMHELP    = 106
  109. CONST IDD_SPEED         = 111
  110. CONST IDD_ASKQUIT       = 200
  111. CONST IDD_DESTPATH      = 300
  112. CONST IDD_EXITFAILURE   = 400
  113. CONST IDD_EXITQUIT      = 600
  114. CONST IDD_EXITSUCCESS   = 700
  115. CONST IDD_APPHELP       = 900
  116. CONST IDD_DONENEWSYSSOFT    = 1100
  117. CONST IDD_DONENOSYSSOFT     = 1800
  118. CONST IDD_NEWSYSTEMSOFTWARE = 2300
  119. CONST IDD_NEWADPCM      = 2600
  120. CONST IDD_WARNNOSYSSOFT = 3100
  121. CONST IDD_MAILMAN       = 1500
  122. CONST IDD_CUSTOM        = 6200
  123. CONST IDD_BADPATH       = 6400
  124. CONST IDD_NEED31        = 6401
  125. CONST IDD_NOMOUSE       = 6402
  126. CONST IDD_BADVGA        = 6403
  127. CONST IDD_NOT256        = 6404
  128. CONST IDD_POORMACHINE   = 6405
  129. CONST IDD_AWFULMACHINE  = 6406
  130. CONST IDD_PATHHELP      = 6407
  131. CONST IDD_WHIZZHELP     = 6408
  132. CONST IDD_URKADPCM      = 6409
  133. CONST IDD_ADPCMHELP     = 6410
  134. CONST IDD_NODISKSPACE   = 6411
  135. CONST IDD_NETWORKDRIVE  = 6412
  136. CONST IDD_LICENSE       = 6420
  137. '// Win 32s bits
  138. '//
  139. CONST IDD_EXITFAILNOTENH        = 6430
  140. CONST IDD_EXITFAILNOTINTEL      = 6431
  141. CONST IDD_EXITFAILNOTWIN31      = 6432
  142. CONST IDD_EXITFAILRUNAPP        = 6433
  143. CONST IDD_FREECELLINST          = 6434
  144. CONST IDD_NEEDSWIN32S           = 6435
  145. CONST ID_APP_FILE_NAME1         = 6446
  146. CONST ID_APP_FILE_NAME          = 6447
  147.  
  148. GLOBAL szWinPath As String
  149. GLOBAL szWinSysPath As String
  150. GLOBAL szWinDrive As String
  151. GLOBAL szSrcSetupPath As String
  152. GLOBAL szSrcBinPath As String
  153. GLOBAL szDestPath As String
  154. GLOBAL szOldDestPath As String
  155. GLOBAL szPengePath As String
  156. GLOBAL szINFPath As String
  157. GLOBAL szAppINIPath As String
  158. GLOBAL szMsgCaption As String
  159. GLOBAL szButton As String
  160. GLOBAL szMinimalInstall As String
  161. GLOBAL szAddPMItem As String
  162. GLOBAL szExpressCustomChoice As String
  163. GLOBAL szMMappPath As String
  164. GLOBAL szInstExePath As String
  165. GLOBAL szInstExeDate As String
  166. GLOBAL szCdExePath As String
  167. GLOBAL szCdExeDate As String
  168.  
  169. GLOBAL fPreviousMode As Integer
  170. GLOBAL fWillNotFit As Integer
  171. GLOBAL fSystemUpdated As Integer
  172. GLOBAL hDlg As Integer
  173. GLOBAL dButton As Integer
  174. GLOBAL dWinDrive As Integer
  175. GLOBAL dDestDrive As Integer
  176. GLOBAL dCursor As Integer
  177.  
  178.  
  179.  
  180. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  181. Sub InitCommonInstall() STATIC
  182.     AddToBillboardList CUIDLL_FILENAME, IDD_MAILMAN, "MailmanDlgProc", 2500
  183.     SetCopyGaugePosition -1, 150
  184. End Sub
  185.  
  186.  
  187. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  188. Sub EndCommonInstall(appReadmeFile$, inRoot%, szEditorExe$) STATIC
  189.     if RestartListEmpty = 0 or fSystemUpdated = 1 then
  190.         hDlg = IDD_DONENEWSYSSOFT
  191.     else
  192.         hDlg = IDD_DONENOSYSSOFT
  193.     end if
  194.  
  195. QuitLoop:
  196.     szButton = UIStartDlg(CUIDLL_FILENAME, hDlg, "FInfoDlgProc", 0, "")
  197.     select case szButton
  198.     case "REACTIVATE"
  199.         goto QuitLoop
  200.     case "CONTINUE"     'Read me
  201.         if inRoot% = 1 then
  202.             szReadMe$ = MakePath( mid$(szSrcSetupPath, 1, (len(szSrcSetupPath) - len(SOURCE_SETUP_SUBDIR))-1), appReadmeFile$)
  203.         else
  204.             szReadMe$ = MakePath(szSrcBinPath, appReadmeFile$)
  205.         end if
  206.         if szEditorExe$ = "write.exe " then
  207.             run szEditorExe$ + szReadMe$, nowait
  208.         else
  209.             run szEditorExe$ + szReadMe$
  210.         end if
  211.         goto QuitLoop
  212.     case "BACK"     'Restart Windows
  213.         HandleRestart
  214.     case "EXIT" , "CANCEL"         'Return to Windows
  215.         if hDlg = IDD_DONENEWSYSSOFT then
  216.             dButton = DoMsgBox( STR_SYSMESSAGE, szMsgCaption$, MB_OK+MB_TASKMODAL+MB_ICONHAND)
  217.         end if
  218.     end select
  219.  
  220.     UIPop 1
  221. End Sub
  222.  
  223.  
  224. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  225. Sub Initialise(prodName$, defInstallPath$, msgCaption$) STATIC
  226.     ret% = Ctl3dRegister(HinstFrame())
  227.     ret% = Ctl3dAutoSubClass(HinstFrame())
  228.  
  229.     szMsgCaption$ = msgCaption$
  230.  
  231.     cursor% = ShowWaitCursor()
  232.  
  233.     ClearCopyList
  234.     szWinSysPath = ucase$(GetWindowsSysDir ())
  235.     szWinPath = ucase$(GetWindowsDir ())
  236.     dWinDrive = asc(mid$((szWinPath), 1,1)) - asc("A")+1
  237.     szWinDrive = mid$(szWinPath, 1,1)
  238.  
  239.     szSrcSetupPath = ucase$(GetSymbolValue ("STF_SRCDIR"))
  240.     szSrcBinPath = mid$(szSrcSetupPath, 1, (len(szSrcSetupPath) - len(SOURCE_SETUP_SUBDIR))-1) + SOURCE_BINARIES_SUBDIR
  241.     szDestPath = szWinDrive + ":" + defInstallPath$
  242.  
  243.     SetTitle szMsgCaption$
  244.     SetBitmap CUIDLL_FILENAME, 1
  245.     SetAbout prodName$, STR_COPYRIGHT
  246.  
  247.     fPreviousMode = SetBeepingMode (1)
  248.     fPreviousMode = SetDecompMode (1)
  249.     fPreviousMode = SetSilentMode (0)
  250.  
  251.     szINFPath = ucase$(GetSymbolValue("STF_SRCINFPATH"))
  252.     if szINFPath = "" then
  253.         szINFPath = ucase$(GetSymbolValue("STF_CWDDIR")) + SETUP_INF_FILENAME
  254.     end if
  255.     ReadInfFile szINFPath
  256.  
  257.     szExpressCustomChoice = "EXPRESS"
  258.     szMinimalInstall = "OFF"
  259. '    szAddPMItem = "ON"
  260.  
  261.     fSystemUpdated = 0
  262.  
  263.     RestoreCursor(cursor%)
  264. End Sub
  265.  
  266.  
  267.  
  268. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  269. Sub DeInitialise() STATIC
  270.     ret% = Ctl3dUnregister(HinstFrame())
  271. End Sub
  272.  
  273.  
  274. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  275. Sub AskQuit() STATIC
  276. begin:
  277.     szButton = UIStartDlg(CUIDLL_FILENAME, IDD_ASKQUIT, "FQuitDlgProc", 0, "")
  278.     select case szButton
  279.     case "REACTIVATE"
  280.         goto begin
  281.     case "EXIT" , "CANCEL"
  282.         error STFQUIT
  283.     case "CONTINUE"
  284.         UIPop 1
  285.     end select
  286. End Sub
  287.  
  288.  
  289. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  290. Sub BadPath() STATIC
  291. begin:
  292.     szButton = UIStartDlg(CUIDLL_FILENAME, IDD_BADPATH, "FInfo0DlgProc", 0, "")
  293.     select case szButton
  294.     case "REACTIVATE"
  295.         goto begin
  296.     end select
  297.     UIPop 1
  298. End Sub
  299.  
  300.  
  301.  
  302. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  303. Sub NetworkDrive() STATIC
  304. begin:
  305.     szButton = UIStartDlg(CUIDLL_FILENAME, IDD_NETWORKDRIVE, "FInfo0DlgProc", 0, "")
  306.     select case szButton
  307.     case "REACTIVATE"
  308.         goto begin
  309.     end select
  310.     UIPop 1
  311. End Sub
  312.  
  313. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  314. Function LicenseAgreement() STATIC As Integer
  315. begin:
  316.     szButton = UIStartDlg( CUIDLL_FILENAME, IDD_LICENSE, "FInfoDlgProc", 0, "" )
  317.     select case szButton
  318.     case "CONTINUE"
  319.         UIPop 1
  320.         LicenseAgreement = NAV_FORWARD
  321.     case "EXIT" , "CANCEL"
  322.         LicenseAgreement = NAV_EXIT
  323.     end select
  324. End Function
  325.  
  326. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  327. Function Welcome() STATIC As Integer
  328. begin:
  329.     szButton = UIStartDlg(CUIDLL_FILENAME, IDD_WELCOME, "FInfoDlgProc", IDD_APPHELP, PROC_HELP)
  330.     select case szButton
  331.     case "REACTIVATE"
  332.         goto begin
  333.     case "CONTINUE"
  334.         UIPop 1
  335.         Welcome = NAV_FORWARD
  336.     case "EXIT" , "CANCEL"
  337.         AskQuit
  338.         goto begin
  339.     end select
  340. End Function
  341.  
  342. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  343. Function TestSystem() STATIC As Integer
  344.  
  345. TestNortonAntiVirus:
  346.     szWinString$ = GetIniKeyString( "win.ini", "windows", "load")
  347.     ret% = instr( szWinString,"NAV\navtsrw.exe" )
  348.     if ret% <> 0  then
  349.         dButton = DoMsgBox(STR_NAV, szMsgCaption$, MB_OK)
  350.     endif
  351.  
  352. TestWinVer:
  353.     if GetWindowsMajorVersion() < 3 or (GetWindowsMajorVersion() = 3 and GetWindowsMinorVersion() < 10) then
  354.         TestWinVerDlgLoop:
  355.             szButton = UIStartDlg (CUIDLL_FILENAME, IDD_NEED31, "FInfoDlgProc", IDD_AWFULMACHINE, PROC_HELP)
  356.             select case szButton
  357.             case "EXIT" , "CANCEL"
  358.                 goto TestWinVerDlgLoop
  359.             end select
  360.     end if
  361.  
  362. TestVGA:
  363.     if GetScreenWidth () < 640 or GetScreenHeight () < 480 then
  364.         TestVGADlgLoop:
  365.             szButton = UIStartDlg (CUIDLL_FILENAME, IDD_BADVGA, "FInfoDlgProc", IDD_AWFULMACHINE, PROC_HELP)
  366.             select case szButton
  367.             case "REACTIVATE"
  368.                 goto TestVGADlgLoop
  369.             case "BACK"
  370.                 UIPop 1
  371.                 TestSystem = NAV_BACK
  372.                 goto back
  373.             case "CONTINUE"
  374.                 UIPop 1
  375.                 goto TestMouse
  376.             case "EXIT" , "CANCEL"
  377.                 AskQuit
  378.                 goto TestVGADlgLoop
  379.             end select
  380.         end if
  381.  
  382. TestMouse:
  383.     if HasMouseInstalled() = false then
  384.     TestMouseDlgLoop:
  385.         szButton = UIStartDlg (CUIDLL_FILENAME, IDD_NOMOUSE, "FInfoDlgProc", IDD_AWFULMACHINE, PROC_HELP)
  386.         select case szButton
  387.         case "REACTIVATE"
  388.             goto TestMouseDlgLoop
  389.         case "BACK"
  390.             UIPop 1
  391.             TestSystem = NAV_BACK
  392.         case "CONTINUE"
  393.             UIPop 1
  394.             goto TestColour
  395.         case "EXIT" , "CANCEL"
  396.             AskQuit
  397.             goto TestMouseDlgLoop
  398.         end select
  399.     end if
  400.  
  401. TestColour:
  402.     if FIs256Colour() = false then
  403.     TestColourDlgLoop:
  404.         szButton = UIStartDlg (CUIDLL_FILENAME, IDD_NOT256, "FInfoDlgProc", IDD_POORMACHINE, PROC_HELP)
  405.         select case szButton
  406.         case "REACTIVATE"
  407.             goto TestColourDlgLoop
  408.         case "BACK"
  409.             UIPop 1
  410.             TestSystem = NAV_BACK
  411.             goto back
  412.         case "CONTINUE"
  413.             UIPop 1
  414.             TestSystem = NAV_FORWARD
  415.         case "EXIT" , "CANCEL"
  416.             AskQuit
  417.             goto TestColourDlgLoop
  418.         end select
  419.     end if
  420.  
  421. back:
  422. End Function
  423.  
  424.  
  425. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  426. '**
  427. '** Purpose:
  428. '**     Appends a file name to the end of a directory path,
  429. '**     inserting a backslash character as needed.
  430. '** Arguments:
  431. '**     szDir$  - full directory path (with optional ending "\")
  432. '**     szFile$ - filename to append to directory
  433. '** Returns:
  434. '**     Resulting fully qualified path name.
  435. '*************************************************************************
  436. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  437.     IF szDir$ = "" THEN
  438.         MakePath = szFile$
  439.     ELSEIF szFile$ = "" THEN
  440.         MakePath = szDir$
  441.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  442.         MakePath = szDir$ + szFile$
  443.     ELSE
  444.         MakePath = szDir$ + "\" + szFile$
  445.     END IF
  446. END FUNCTION
  447.  
  448.  
  449.  
  450. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  451. Sub HandleRestart() STATIC
  452.     ' Check there are system files to install AND check if Windows v3.1 or greater
  453.     if RestartListEmpty = 0 and GetWindowsMajorVersion >= 3 and GetWindowsMajorVersion >= 1 then
  454.         dButton = DoMsgBox(STR_EXIT, szMsgCaption$, MB_OK+MB_TASKMODAL+MB_ICONINFORMATION)
  455.         tryagain:
  456.         if ExitExecRestart = 1 then
  457.             ' Exit failed
  458.             dButton = DoMsgBox(STR_EXITFAIL, szMsgCaption$, MB_OK+MB_TASKMODAL+MB_ICONSTOP)
  459.             goto tryagain
  460.         end if
  461.     end if
  462.  
  463.     if RestartListEmpty = 1 then ' Empty, but we have to reboot
  464.         dummy% = ExitWindowsExec(MakePath(szDestPath, "_msrstrt.exe"), "")
  465.     end if
  466. End Sub
  467.  
  468.  
  469.  
  470. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  471. 'Sub UpdateProgramManager(prodName$, appExeFile$, appPengeFile$, readmeFile$, readmeStr$, onCDROM%) STATIC
  472. 'Dim szReadmeTitle As String
  473. 'Dim szInf As String
  474. '
  475. '    if onCDROM% = 1 then    'sampler
  476. '        CreateProgmanGroup STR_COMPANYNAME, "", cmoNone
  477. '        ShowProgmanGroup   STR_COMPANYNAME, 1, cmoNone
  478. '        szReadmeTitle = prodName$ + " " + readmeStr$
  479. '
  480. '        szInf = MakePath( mid$(szSrcSetupPath, 1, (len(szSrcSetupPath) - len(SOURCE_SETUP_SUBDIR))-1), appExeFile$)
  481. '        CreateProgmanItem STR_COMPANYNAME, prodName$, szInf, MakePath(szDestPath, "sampler.ico"), cmoOverwrite
  482. ''        CreateProgmanItem STR_COMPANYNAME, szReadmeTitle, "notepad.exe " + MakePath( mid$(szSrcSetupPath, 1, (len(szSrcSetupPath) - len(SOURCE_SETUP_SUBDIR))-1), readmeFile$), "", cmoOverwrite
  483. '    else
  484. '        if szAddPMItem = "ON" then
  485. '            CreateProgmanGroup STR_COMPANYNAME, "", cmoNone
  486. '            ShowProgmanGroup   STR_COMPANYNAME, 1, cmoNone
  487. '            szReadmeTitle = prodName$ + " " + readmeStr$
  488. '            if szMinimalInstall = "ON" then
  489. '                szInf = MakePath(szSrcBinPath, appExeFile$) + " " + MakePath(szSrcBinPath, appPengeFile$)
  490. '                CreateProgmanItem STR_COMPANYNAME, prodName$, szInf, szInf, cmoOverwrite
  491. '                CreateProgmanItem STR_COMPANYNAME, szReadmeTitle, "notepad.exe " + MakePath(szSrcBinPath, readmeFile$), "", cmoOverwrite
  492. '            else
  493. '                szInf = MakePath(szDestPath, appExeFile$) + " " + MakePath(szDestPath, appPengeFile$)
  494. '                CreateProgmanItem STR_COMPANYNAME, prodName$, szInf, szInf, cmoOverwrite
  495. '                CreateProgmanItem STR_COMPANYNAME, szReadmeTitle, "notepad.exe " + MakePath(szDestPath, readmeFile$), "", cmoOverwrite
  496. '            end if
  497. '        end if
  498. '    end if
  499. '
  500. 'End Sub
  501.  
  502.  
  503. ''''''''''''''''''''''''''''''''''''''''''''
  504.  
  505. '' Alternative function for french stowaway
  506. '' Readme icon has shortened name
  507. 'Sub UpdateProgramManagerAlt(prodName$, readmeName$, appExeFile$, appPengeFile$, readmeFile$, readmeStr$, onCDROM%) STATIC
  508. 'Dim szReadmeTitle As String
  509. 'Dim szInf As String
  510. '
  511. '    if onCDROM% = 1 then    'sampler
  512. '        CreateProgmanGroup STR_COMPANYNAME, "", cmoNone
  513. '        ShowProgmanGroup   STR_COMPANYNAME, 1, cmoNone
  514. '        szReadmeTitle = readmeName$ + " " + readmeStr$
  515. '
  516. '        szInf = MakePath( mid$(szSrcSetupPath, 1, (len(szSrcSetupPath) - len(SOURCE_SETUP_SUBDIR))-1), appExeFile$)
  517. '        CreateProgmanItem STR_COMPANYNAME, prodName$, szInf, MakePath(szDestPath, "sampler.ico"), cmoOverwrite
  518. ''        CreateProgmanItem STR_COMPANYNAME, szReadmeTitle, "notepad.exe " + MakePath( mid$(szSrcSetupPath, 1, (len(szSrcSetupPath) - len(SOURCE_SETUP_SUBDIR))-1), readmeFile$), "", cmoOverwrite
  519. '   else
  520. '        if szAddPMItem = "ON" then
  521. '            CreateProgmanGroup STR_COMPANYNAME, "", cmoNone
  522. '            ShowProgmanGroup   STR_COMPANYNAME, 1, cmoNone
  523. '            szReadmeTitle = readmeName$ + " " + readmeStr$
  524. '            if szMinimalInstall = "ON" then
  525. '                szInf = MakePath(szSrcBinPath, appExeFile$) + " " + MakePath(szSrcBinPath, appPengeFile$)
  526. '                CreateProgmanItem STR_COMPANYNAME, prodName$, szInf, szInf, cmoOverwrite
  527. '                CreateProgmanItem STR_COMPANYNAME, szReadmeTitle, "notepad.exe " + MakePath(szSrcBinPath, readmeFile$), "", cmoOverwrite
  528. '            else
  529. '                szInf = MakePath(szDestPath, appExeFile$) + " " + MakePath(szDestPath, appPengeFile$)
  530. '                CreateProgmanItem STR_COMPANYNAME, prodName$, szInf, szInf, cmoOverwrite
  531. '                CreateProgmanItem STR_COMPANYNAME, szReadmeTitle, "notepad.exe " + MakePath(szDestPath, readmeFile$), "", cmoOverwrite
  532. '            end if
  533. '        end if
  534. '    end if
  535. '
  536. 'End Sub
  537.  
  538.  
  539.  
  540. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  541. Function GetDiskSpaceNeeded( drive% ) STATIC As Long
  542. Dim dDummy As Long
  543.  
  544.     cursor% = ShowWaitCursor()
  545.  
  546.     SetSymbolValue "ExtraSpace", ""
  547.     SetSymbolValue "Needed", ""
  548.     SetSymbolValue "Cost", ""
  549.  
  550.     'Drives A - Z
  551.     for i% = 1 to 26
  552.         AddListItem "ExtraSpace", ""
  553.     next i%
  554.  
  555.     ReplaceListItem "ExtraSpace", dWinDrive, str$(MINIMUM_DISK_SPACE)    '2K for the INI file
  556.  
  557.     dDummy = GetCopyListCost("ExtraSpace","Needed","Cost")
  558.  
  559.     GetDiskSpaceNeeded = val(GetListItem ("Needed", drive))
  560.  
  561.     RemoveSymbol "Needed"
  562.     RemoveSymbol "Cost"
  563.     RemoveSymbol "ExtraSpace"
  564.  
  565.     RestoreCursor(cursor%)
  566. End Function
  567.  
  568.  
  569.  
  570. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  571. Sub UpdateIndeoAVIDrivers() STATIC
  572. Dim szWMDriver As String
  573. Dim szACMDriver As String
  574.  
  575.     szWMDriver = GetIniKeyString(MakePath(szWinPath,"system.ini"), "drivers", "WaveMapper")
  576.  
  577.     if not(szWMDriver = "msacm.drv") then
  578.         fSystemUpdated = 1
  579.     end if
  580.  
  581.  
  582.     if VflatdPresent() = 0 then
  583.         CreateSysIniKeyValue szWinPath + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  584.         fSystemUpdated = 1
  585.     end if
  586.     CreateIniKeyValue szWinPath + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
  587.     CreateIniKeyValue szWinPath + "system.ini", "Drivers", "VIDC.IV31", "ir32.dll", cmoOverwrite
  588.     CreateIniKeyValue szWinPath + "system.ini", "Drivers", "VIDC.RT21", "ir21.dll", cmoOverwrite
  589.     CreateIniKeyValue szWinPath + "system.ini", "Drivers", "VIDC.YVU9", "iyvu9.dll", cmoOverwrite
  590.     CreateIniKeyValue szWinPath + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  591.     CreateIniKeyValue szWinPath + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  592.     CreateIniKeyValue szWinPath + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  593.     CreateIniKeyValue szWinPath + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  594.     CreateIniKeyValue szWinPath + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  595.     CreateIniKeyValue szWinPath + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  596.     CreateIniKeyValue szWinPath + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  597.     CreateIniKeyValue szWinPath + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  598.     CreateIniKeyValue szWinPath + "control.ini", "drivers.desc", "ir21.dll", "Intel Indeo(TM) Video R2.1", cmoOverwrite
  599.     CreateIniKeyValue szWinPath + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  600.     CreateIniKeyValue szWinPath + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  601.     CreateIniKeyValue szWinPath + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  602. End Sub
  603.  
  604.  
  605.  
  606. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  607. Sub UpdateWinGDrivers() STATIC
  608. Dim szDest As String
  609. Dim szDest1 As String
  610. Dim szDest2 As String
  611.  
  612.     ' only use DVA on Windows 3.x
  613.     if OnWin3x() = 1 then
  614.         AddSectionFilesToCopyList "dva", szSrcBinPath, szWinSysPath
  615.         if VflatdPresent() = 0 then
  616.             CreateSysIniKeyValue szWinPath + "system.ini", "386Enh", "device", szWinSysPath+"dva.386", cmoOverwrite
  617.             fSystemUpdated = 1
  618.         end if
  619.     end if
  620.  
  621.     szDest = GetRealWindowsSysDir
  622.     szDest1 = MakePath(szDest,"wing32.dll")
  623.     szDest2 = MakePath(szDest,"wing32.xxx")
  624.     RenameFilePlease szDest1, szDest2
  625.  
  626.     UpdateWinG32 GetRealWindowsSysDir()
  627. End Sub
  628.  
  629. '''''''''''''''''''''''''''''''''''''''''''''''''
  630.  
  631. FUNCTION GetRealWindowsSysDir STATIC AS STRING
  632.     szBuf$ = string$(260, 32)
  633.     cbBuf% = GetRealSystemDir(szBuf$, 260)
  634.     IF cbBuf% = 0 THEN
  635.         ERROR STFERR
  636.     ELSE
  637.         IF cbBuf% > 259 THEN
  638.             res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  639.             ERROR STFERR
  640.         END IF
  641.         szBuf$ = RTRIM$(szBuf$)
  642.         IF MID$(szBuf$, 1, 1) = "\" THEN
  643.             szBuf$ = MID$(CURDIR$, 1, 2) + szBuf$
  644.         ELSEIF MID$(szBuf$, 2, 1) <> ":" THEN
  645.             szBuf$ = MID$(CURDIR$, 1, 3) + szBuf$
  646.         END IF
  647.         IF MID$(szBuf$, LEN(szBuf$), 1) <> "\" THEN
  648.             szBuf$ = szBuf$ + "\"
  649.         END IF
  650.         GetRealWindowsSysDir = szBuf$
  651.     END IF
  652.  
  653.     szBuf$ = ""
  654. END FUNCTION
  655.  
  656. '''''''''''''''''''''''''''''''''''''''''''''''''
  657.  
  658. SUB UpdateWinG32 (szOrig$) STATIC
  659.     '
  660.     ' Here we check the version ourselves of wing32.dll, since
  661.     ' we can't get version checking for Win32 apps from Win16
  662.     '
  663.     FileNew$ = MakePath(szOrig$, "wing32.dll")
  664.     FileOrig$ = MakePath(szOrig$, "wing32.xxx")
  665.     IF IsWin32FileNewer( FileOrig$, FileNew$ ) THEN
  666.     RemoveFile FileOrig$, cmoForce
  667.     ELSE
  668.         RemoveFile FileNew$, cmoForce       ' get rid of new file
  669.     RenameFilePlease FileOrig$,FileNew$ ' put back old file
  670.     END IF
  671. END SUB
  672.  
  673.  
  674.  
  675. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  676. Sub UpdateADPCMDrivers() STATIC
  677. Dim szWMDriver As String
  678. Dim szACMDriver As String
  679. Dim fUpdate As Integer
  680.  
  681.     ' Check WaveMapper driver
  682.     szWMDriver = GetIniKeyString(MakePath(szWinPath,"system.ini"), "drivers", "WaveMapper")
  683.     szACMDriver = GetIniKeyString (MakePath(szWinPath, "system.ini"), "MSACM", "Install")
  684.  
  685.     if not(szWMDriver = "msacm.drv") then
  686.     ' Isn't installed so...
  687.  
  688.         ' If NO ADPCM drivers are installed so...
  689.         if (szWMDriver = "") then
  690.             ' Display a dialog saying "there are no ADPCM drivers on your system..."
  691.             fUpdate = 1
  692.         else
  693.             ' There is a different adpcm driver in there so warn about compatibility
  694.         loop1:
  695.             szButton = UIStartDlg(CUIDLL_FILENAME, IDD_URKADPCM, "FInfoDlgProc", IDD_ADPCMHELP, PROC_HELP)
  696.             select case szButton
  697.             case "REACTIVATE"
  698.                 goto loop1
  699.             case "EXIT" , "CANCEL"
  700.                 AskQuit
  701.                 goto loop1
  702.             case "CONTINUE"     ' YES
  703.                 UIPop 1
  704.                 fUpdate = 1
  705.             case "CANCEL"       ' NO
  706.                 UIPop 1
  707.                 fUpdate = 0
  708.             case "BACK"
  709.                 UIPop 1
  710.                 ' return back flag
  711.             end select
  712.         end if
  713.  
  714.  
  715.         if fUpdate = 1 then
  716.             CreateIniKeyValue szWinPath + "system.ini", "drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  717.             CreateIniKeyValue szWinPath + "system.ini", "MSACM", "Install", "msadpcm.acm", cmoOverwrite
  718.             CreateIniKeyValue szWinPath + "control.ini", "drivers.desc", "msacm.drv","MS Audio Compression Manager", cmoOverwrite
  719.             CreateIniKeyValue szWinPath + "control.ini", "Userinstallable.drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  720.             CreateIniKeyValue szWinPath + "control.ini", "related.desc", "WaveMapper", "", cmoOverwrite
  721.             fSystemUpdated = 1
  722.         else
  723.         noSysSoftware:
  724.             ' No install warning
  725.             szButton = UIStartDlg(CUIDLL_FILENAME, IDD_WARNNOSYSSOFT, "FInfoDlgProc", 0, "")
  726.             select case szButton
  727.             case "REACTIVATE"
  728.                 goto noSysSoftware
  729.             case "EXIT" , "CANCEL"
  730.                 AskQuit
  731.                 goto noSysSoftware
  732.             case "CONTINUE"
  733.                 UIPop 1
  734.             case "BACK"
  735.                 UIPop 1
  736.                 goto loop1
  737.             end select
  738.         end if
  739.  
  740.     end if
  741.  
  742. End Sub
  743.  
  744.  
  745. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''